package com.sz.biz.logistics.base.service;

import com.sz.biz.logistics.base.entity.CarrierCompany;
import com.sz.biz.logistics.base.dto.CarrierCompanyDto;
import com.sz.common.base.dto.QueryParams;
import com.sz.common.base.dto.ResultDto;

import java.util.List;

/**
 * Function: CarrierCompanyService <br>
 * Author: penghui.zheng <br>
 * Date: 2016-12-01 14:25:00
 */
public interface CarrierCompanyService {
    /**
     * 新增承运公司
     *
     * @param carrierCompanyDto
     * @return int
     */
    int saveCarrierCompany(CarrierCompanyDto carrierCompanyDto);

    /**
     * 修改承运公司
     *
     * @param carrierCompanyDto
     * @return int
     */
    int updateCarrierCompany(CarrierCompanyDto carrierCompanyDto);

    /**
     * 根据id删除承运公司
     *
     * @param ids
     */
    void deleteByIds(List<Integer> ids);

    /**
     * 分页查询承运公司
     *
     * @param params
     * @return ResultDto
     */
    ResultDto findCarrierCompanyList(QueryParams params);

    /**
     * 根据id查询承运公司信息
     *
     * @param id
     * @return CarrierCompanyDto
     */
    CarrierCompanyDto findById(int id);

    /**
     * 根据id查询承运公司信息
     *
     * @param ids
     * @return CarrierCompanyDto
     */
    List<CarrierCompany>  findByIds(List<Integer> ids);

    /**
     * 查询国际化数据
     *
     * @param params
     */
    @SuppressWarnings("rawtypes")
    ResultDto findI18nByParam(QueryParams params);

    /**
     * @param name
     * @return @
     */
    void checkCarrierCompanyName(String name);

    /**
     * @param figureCode
     * @return @
     */
    void checkFigureCode(String figureCode, int id);

    /**
     * @param triadCode
     * @return @
     */
    void checkTriadCode(String triadCode);


    /**
     * 分页查询承运公司-短接口
     *
     * @param params params
     * @return ResultDto
     */
    ResultDto findShortCarrierCompanyList(QueryParams params);
}
